package com.es.designmode.state;

/**
 * 状态模式
 * 当一个对象的内在状态改变时允许改变其行为，这个对象看起来像是改变了其类
 * 把状态的判断逻辑转移到表示不同状态的一系列类中，可以把复杂的逻辑简单化
 * <p>
 * 我理解的，就是让判断逻辑在子类，客户端不会修改
 *
 * @author Will
 */
public class ClientSide {

    public static void main(String[] args) {
        Context c = new Context(new ConcreteStateA());

        c.request();    //B
        c.request();    //A
        c.request();    //B
        c.request();    //A
    }
}
